home *** CD-ROM | disk | FTP | other *** search
-
- {$G+}
- const
- screen=ptr($A000,0);
- font=ptr($F0A0,$F06E);
-
- Function ReadKey:Char;Assembler;
- Asm
- mov ah,00h; int 16h
- End;
-
- Procedure DispStr(x,y:Word;color:Byte;page,font:Pointer;s:String);Assembler;
- Asm
- les di,s; mov al,es:[di]; push ax; push es;
- push di; @begin:; les di,s; mov al,es:[di];
- cmp al,0; je @exit; dec al; mov es:[di],al;
- inc al; xor ah,ah; mov dx,ax; add di,ax;
- mov al,es:[di]; shl ax,3; les di,font; add di,ax;
- mov bx,di; mov cx,es; les di,page; mov ax,y;
- mov dh,al; shl ax,6; add ah,dh; xor dh,dh;
- shl dx,3; add ax,dx; add ax,x; add di,ax;
- mov ah,color; xchg di,bx; mov si,es; mov es,cx;
- mov cx,si; mov dx,0880h; @loop1:; mov al,es:[di];
- xchg di,bx; mov si,es; mov es,cx; mov cx,si;
- @loop2:; cmp al,dl; jb @loop3; sub al,dl;
- mov es:[di],ah; @loop3:; inc di; cmp dl,0;
- shr dl,1; jne @loop2; mov dl,80h; add di,312;
- xchg di,bx; mov si,es; mov es,cx; mov cx,si;
- inc di; dec dh; cmp dh,0; jne @loop1;
- jmp @begin; @exit:; pop di; pop es;
- pop ax; mov es:[di],al;
- End;
-
- begin
- asm; mov ax,13h; int 10h; end;
- dispstr(10,10,15,screen,font,'does it work?');
- readkey;
- asm; mov ax,03h; int 10h; end;
- end.
-